home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Development / Interfaces / QD3DPascalInterfaces / QD3DController.p < prev    next >
Encoding:
Text File  |  1996-11-15  |  8.1 KB  |  148 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DController.p
  3.  
  4.      Contains:    Each physical device is represented in the system by a            
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.0.6
  7.                  Release:    Universal Interfaces 2.1.5d1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DController;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DCONTROLLER__}
  28. {$SETC __QD3DCONTROLLER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DControllerIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37.  
  38. {$PUSH}
  39. {$ALIGN POWER}
  40. {$LibExport+}
  41.  
  42. {
  43. *****************************************************************************
  44.  **                                                                             **
  45.  **                                Type Definitions                             **
  46.  **                                                                             **
  47.  ****************************************************************************
  48. }
  49.  
  50. TYPE
  51.     TQ3ChannelGetMethod = ProcPtr;  { FUNCTION TQ3ChannelGetMethod(controllerRef: TQ3ControllerRef; channel: LONGINT; data: UNIV Ptr; VAR dataSize: LONGINT): TQ3Status; C; }
  52.  
  53.     TQ3ChannelSetMethod = ProcPtr;  { FUNCTION TQ3ChannelSetMethod(controllerRef: TQ3ControllerRef; channel: LONGINT; data: UNIV Ptr; dataSize: LONGINT): TQ3Status; C; }
  54.  
  55.     TQ3ControllerDataPtr = ^TQ3ControllerData;
  56.     TQ3ControllerData = RECORD
  57.         signature:                CStringPtr;
  58.         valueCount:                LONGINT;
  59.         channelCount:            LONGINT;
  60.         channelGetMethod:        TQ3ChannelGetMethod;
  61.         channelSetMethod:        TQ3ChannelSetMethod;
  62.     END;
  63.  
  64. {
  65. *****************************************************************************
  66.  **                                                                             **
  67.  **                                     Routines                                 **
  68.  **                                                                             **
  69.  ****************************************************************************
  70. }
  71. FUNCTION Q3Controller_GetListChanged(VAR listChanged: TQ3Boolean; VAR serialNumber: LONGINT): TQ3Status; C;
  72. FUNCTION Q3Controller_Next(controllerRef: TQ3ControllerRef; VAR nextControllerRef: TQ3ControllerRef): TQ3Status; C;
  73. FUNCTION Q3Controller_New({CONST}VAR controllerData: TQ3ControllerData): TQ3ControllerRef; C;
  74. FUNCTION Q3Controller_Decommission(controllerRef: TQ3ControllerRef): TQ3Status; C;
  75. FUNCTION Q3Controller_SetActivation(controllerRef: TQ3ControllerRef; active: TQ3Boolean): TQ3Status; C;
  76. FUNCTION Q3Controller_GetActivation(controllerRef: TQ3ControllerRef; VAR active: TQ3Boolean): TQ3Status; C;
  77. FUNCTION Q3Controller_GetSignature(controllerRef: TQ3ControllerRef; signature: CStringPtr; numChars: LONGINT): TQ3Status; C;
  78. FUNCTION Q3Controller_SetChannel(controllerRef: TQ3ControllerRef; channel: LONGINT; data: UNIV Ptr; dataSize: LONGINT): TQ3Status; C;
  79. FUNCTION Q3Controller_GetChannel(controllerRef: TQ3ControllerRef; channel: LONGINT; data: UNIV Ptr; VAR dataSize: LONGINT): TQ3Status; C;
  80. FUNCTION Q3Controller_GetValueCount(controllerRef: TQ3ControllerRef; VAR valueCount: LONGINT): TQ3Status; C;
  81. FUNCTION Q3Controller_SetTracker(controllerRef: TQ3ControllerRef; tracker: TQ3TrackerObject): TQ3Status; C;
  82. FUNCTION Q3Controller_HasTracker(controllerRef: TQ3ControllerRef; VAR hasTracker: TQ3Boolean): TQ3Status; C;
  83. FUNCTION Q3Controller_Track2DCursor(controllerRef: TQ3ControllerRef; VAR track2DCursor: TQ3Boolean): TQ3Status; C;
  84. FUNCTION Q3Controller_Track3DCursor(controllerRef: TQ3ControllerRef; VAR track3DCursor: TQ3Boolean): TQ3Status; C;
  85. FUNCTION Q3Controller_GetButtons(controllerRef: TQ3ControllerRef; VAR buttons: LONGINT): TQ3Status; C;
  86. FUNCTION Q3Controller_SetButtons(controllerRef: TQ3ControllerRef; buttons: LONGINT): TQ3Status; C;
  87. FUNCTION Q3Controller_GetTrackerPosition(controllerRef: TQ3ControllerRef; VAR position: TQ3Point3D): TQ3Status; C;
  88. FUNCTION Q3Controller_SetTrackerPosition(controllerRef: TQ3ControllerRef; {CONST}VAR position: TQ3Point3D): TQ3Status; C;
  89. FUNCTION Q3Controller_MoveTrackerPosition(controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Vector3D): TQ3Status; C;
  90. FUNCTION Q3Controller_GetTrackerOrientation(controllerRef: TQ3ControllerRef; VAR orientation: TQ3Quaternion): TQ3Status; C;
  91. FUNCTION Q3Controller_SetTrackerOrientation(controllerRef: TQ3ControllerRef; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  92. FUNCTION Q3Controller_MoveTrackerOrientation(controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Quaternion): TQ3Status; C;
  93. FUNCTION Q3Controller_GetValues(controllerRef: TQ3ControllerRef; valueCount: LONGINT; VAR values: Single; VAR changed: TQ3Boolean; VAR serialNumber: LONGINT): TQ3Status; C;
  94. FUNCTION Q3Controller_SetValues(controllerRef: TQ3ControllerRef; {CONST}VAR values: Single; valueCount: LONGINT): TQ3Status; C;
  95. {
  96. *****************************************************************************
  97.  **                                                                             **
  98.  **                                     Routines                                 **
  99.  **                                                                             **
  100.  ****************************************************************************
  101. }
  102. FUNCTION Q3ControllerState_New(controllerRef: TQ3ControllerRef): TQ3ControllerStateObject; C;
  103. FUNCTION Q3ControllerState_SaveAndReset(controllerStateObject: TQ3ControllerStateObject): TQ3Status; C;
  104. FUNCTION Q3ControllerState_Restore(controllerStateObject: TQ3ControllerStateObject): TQ3Status; C;
  105. {
  106. *****************************************************************************
  107.  **                                                                             **
  108.  **                                Type Definitions                             **
  109.  **                                                                             **
  110.  ****************************************************************************
  111. }
  112.  
  113. TYPE
  114.     TQ3TrackerNotifyFunc = ProcPtr;  { FUNCTION TQ3TrackerNotifyFunc(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef): TQ3Status; C; }
  115.  
  116. {
  117. *****************************************************************************
  118.  **                                                                             **
  119.  **                                     Routines                                 **
  120.  **                                                                             **
  121.  ****************************************************************************
  122. }
  123. FUNCTION Q3Tracker_New(notifyFunc: TQ3TrackerNotifyFunc): TQ3TrackerObject; C;
  124. FUNCTION Q3Tracker_SetNotifyThresholds(trackerObject: TQ3TrackerObject; positionThresh: Single; orientationThresh: Single): TQ3Status; C;
  125. FUNCTION Q3Tracker_GetNotifyThresholds(trackerObject: TQ3TrackerObject; VAR positionThresh: Single; VAR orientationThresh: Single): TQ3Status; C;
  126. FUNCTION Q3Tracker_SetActivation(trackerObject: TQ3TrackerObject; active: TQ3Boolean): TQ3Status; C;
  127. FUNCTION Q3Tracker_GetActivation(trackerObject: TQ3TrackerObject; VAR active: TQ3Boolean): TQ3Status; C;
  128. FUNCTION Q3Tracker_GetButtons(trackerObject: TQ3TrackerObject; VAR buttons: LONGINT): TQ3Status; C;
  129. FUNCTION Q3Tracker_ChangeButtons(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; buttons: LONGINT; buttonMask: LONGINT): TQ3Status; C;
  130. FUNCTION Q3Tracker_GetPosition(trackerObject: TQ3TrackerObject; VAR position: TQ3Point3D; VAR delta: TQ3Vector3D; VAR changed: TQ3Boolean; VAR serialNumber: LONGINT): TQ3Status; C;
  131. FUNCTION Q3Tracker_SetPosition(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR position: TQ3Point3D): TQ3Status; C;
  132. FUNCTION Q3Tracker_MovePosition(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Vector3D): TQ3Status; C;
  133. FUNCTION Q3Tracker_GetOrientation(trackerObject: TQ3TrackerObject; VAR orientation: TQ3Quaternion; VAR delta: TQ3Quaternion; VAR changed: TQ3Boolean; VAR serialNumber: LONGINT): TQ3Status; C;
  134. FUNCTION Q3Tracker_SetOrientation(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  135. FUNCTION Q3Tracker_MoveOrientation(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Quaternion): TQ3Status; C;
  136. FUNCTION Q3Tracker_SetEventCoordinates(trackerObject: TQ3TrackerObject; timeStamp: LONGINT; buttons: LONGINT; {CONST}VAR position: TQ3Point3D; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  137. FUNCTION Q3Tracker_GetEventCoordinates(trackerObject: TQ3TrackerObject; timeStamp: LONGINT; VAR buttons: LONGINT; VAR position: TQ3Point3D; VAR orientation: TQ3Quaternion): TQ3Status; C;
  138. {$ALIGN RESET}
  139. {$POP}
  140.  
  141. {$SETC UsingIncludes := QD3DControllerIncludes}
  142.  
  143. {$ENDC} {__QD3DCONTROLLER__}
  144.  
  145. {$IFC NOT UsingIncludes}
  146.  END.
  147. {$ENDC}
  148.